package demo1215.pm;

/*
StringBuilder类:线程不安全,执行效率高(适用于单线程)
StringBuilder类:该类的对象表示的是字符串对象,是一个可变的字串对象.
构造方法:
public StringBuilder();
public StringBuilder(String str);

成员方法:
1.public StringBuilder append(任何数据类型 a);
将指定的参数a添加到当前字符串的末尾.
返回的是当前对象本身.
2.public char  charAt(int index);
返回指定索引处的字符.
3.public int length();返回的是字符串的长度
4.public StringBuilder insert(int offset,任何数据类型 b)
将参数b插入到指定的索引位置.返回的是当前对象本身.

5.public StringBuilder deleteCharAt(int index);
删除指定的索引字符,返回的是当前对象本身

6.public StringBuilder delete(int start,int end);
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始，
一直到索引 end - 1 处的字符，如果不存在这种字符，则一直到序列尾部。
如果 start 等于 end，则不发生任何更改。
start:包括
end:不包括
返回:当前对象本身.

7.public void setCharAt(int index,char ch);
将给定索引处的字符设置为 ch.
8.public StringBuilder replace(int start,int end,String str);
使用指定的字符串str替换从索引start开始,到end-1处结束.
返回的是当前对象本身.
9.public StringBuilder reverse();
把对象中的内容进行反转,返回的是对象本身.

10.public int indexOf(String str);
返回第一次出现的指定子字符串在该字符串中的索引。找不到,返回-1;
11.public int indexOf(String str,int fromIndex);
从指定的索引位置查找出现的指定子字符串在该字符串中的索引。找不到,返回-1;

12.public String substring(int start);
返回一个新的 String，它包含此字符序列当前所包含的字符子序列。
该子字符串始于指定索引处的字符，一直到此字符串末尾。

13.public String substring(int start,int end);
返回的是一个新的String ,从start索引位置开始,到end-1处位置结束

14.public String toString();
返回的是当前对象的字符串类型.
 */
public class Demo_03 {
    public static void main(String[] args) {
        StringBuilder s = new StringBuilder("hello");
        String s1 = s.toString();
        System.out.println(s1);
    }

    public static void demo06() {
        StringBuilder s = new StringBuilder("12345");
        s.reverse();
        System.out.println(s);
    }

    public static void demo04() {
        StringBuilder s = new StringBuilder("hello");
        s.replace(1, 3, "祝你平安顺遂");
        System.out.println(s);//h祝你平安顺遂lo
    }

    public static void demo03(StringBuilder s) {
        s.setCharAt(2, '#');
        System.out.println(s);//"he#lo"
    }

    public static void dmeo02() {
        StringBuilder s = new StringBuilder("hello");
        s.delete(1, 3);
        System.out.println(s);//hlo
    }

    public static void demo01() {
        StringBuilder s = new StringBuilder("12%");
//        s.append(true).append(12345).append("hello");
        System.out.println(s);
        System.out.println(s.charAt(2));//%
        System.out.println(s.length());//3
        //将元素插入到字符串的指定位置
        s.insert(1, false);
        System.out.println(s);//1false2%
        //删除指定的索引位置上的元素.
        s.deleteCharAt(2);
        System.out.println(s);//1flse2%
    }
}
